package com.db.router.context;

/**
 * @author tianjiashu（mac）
 * @ClassName TransactionContext.java
 * @Description 实现事务上下文
 * @createTime 2023年07月12日 20:55:00
 */
public class TransactionContext {
    private static final ThreadLocal<Boolean> TRAN_SWITCH_CONTEXT = new ThreadLocal<>();
    static {
        // 默认事务处于关闭状态
        TRAN_SWITCH_CONTEXT.set(false);
    }
    // 开启事务
    public static void openTran() {
        TRAN_SWITCH_CONTEXT.set(true);
    }
    // 关闭事务
    public static void closeTran() {
        TRAN_SWITCH_CONTEXT.set(false);
    }
    // 判断是否开启事务
    public static Boolean isOpenTran() {
        if(TRAN_SWITCH_CONTEXT.get() == null){
            TRAN_SWITCH_CONTEXT.set(false);
        }
        return TRAN_SWITCH_CONTEXT.get();
    }
}

